// 数据库中的数据都是扁平结构

let faltData = [
    {id:1,name:'研发部门',parentId:0},
    {id:2,name:'市场部门',parentId:0},
    {id:3,name:'销售部门',parentId:0},
    {id:4,name:'前端开发',parentId:1},
    {id:5,name:'后端开发',parentId:1},
    {id:6,name:'UI设计',parentId:1},
    {id:7,name:'推广',parentId:2},
    {id:8,name:"运营",parentId:2},
    {id:9,name:'渠道',parentId:3},
    {id:10,name:'直销',parentId:3},
]

// 1. 重构数据结构,视图呈现的时候会使用树形,children

let faltToTree = (data)=>{
    // 声明一个变量存储处理后的数据
    let newData = []
    // 遍历数据,判断是否有根节点
    data.forEach(item=>{
        if(!item.parentId){
            // 没有父节点，就是根节点 直接插入到newData中
            newData.push(item)
        }else{
            // 有父节点，找到父节点，插入到父节点的children中
            // 遍历newData
            newData.forEach(i=>{
                if(i.id === item.parentId){
                    // 相同就是找到父节点 判断父节点有没有children
                    if(!i.children){
                        // 没有就给父节点添加children
                        i.children = []
                    }
                    // 把当前的item插入到父节点的children中
                    i.children.push(item)
                }
            })
        }
    })
    return newData
}
let tree = faltToTree(faltData)

console.log(tree[0]);